{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Benchmark Analysis between 3D-GNOME and cudaMMC\n",
    "\n",
    "Comparison of two methods:\n",
    "\n",
    "- **3D-GNOME (Latest Version)**: [3D-GNOME Bitbucket Repository](https://bitbucket.org/3dome/3dgnome)\n",
    "- **cudaMMC**: This is a GPU-enhanced extension of 3D-GNOME. [cudaMMC GitHub Repository](https://github.com/SFGLab/cudaMMC)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "import statistics\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "import matplotlib.patches as mpatches\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import seaborn as sns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "def take_times_from_files_calc_average_time(list_of_filenames):\n",
    "    \"\"\"\n",
    "    Extracts processing times from a list of files and calculates average time and \n",
    "    coefficient of variation per chromosome.\n",
    "\n",
    "    This function assumes each file in the list contains a processing time on its first line \n",
    "    and is named in a way that the chromosome name can be extracted from the filename.\n",
    "    For example, for a filename \"/path/to/chromosomeX_data.txt\", \"chromosomeX\" will be \n",
    "    the extracted chromosome name.\n",
    "\n",
    "    Parameters:\n",
    "    - list_of_filenames (list of str): A list of file paths to be processed.\n",
    "\n",
    "    Returns:\n",
    "    - results_average (dict): A dictionary where keys are chromosome names and values \n",
    "      are the average processing times for each chromosome.\n",
    "    - results_coefficient_of_variation (dict): A dictionary where keys are chromosome \n",
    "      names and values are the coefficient of variation (standard deviation/mean) \n",
    "      of the processing times for each chromosome.\n",
    "\n",
    "    Note:\n",
    "    The coefficient of variation is a measure of relative variability. It is useful for \n",
    "    comparing the degree of variation from one data series to another, even if the means \n",
    "    are drastically different from one another.\n",
    "    \"\"\"\n",
    "\n",
    "    results = {}\n",
    "    results_average = {}\n",
    "    results_coefficient_of_variation = {}\n",
    "    \n",
    "    for i in list_of_filenames:\n",
    "        with open(i, 'r') as f:\n",
    "            t=float(f.readline())\n",
    "            chrom_name = i.split('/')[-1].split('_')[0]\n",
    "            if chrom_name in results.keys():\n",
    "                results[chrom_name].append(t)\n",
    "            else:\n",
    "                results[chrom_name]=[t]    \n",
    "    \n",
    "    for key, value in results.items():\n",
    "        mean_of_chrom = statistics.mean(results[key])\n",
    "        st_dev_of_chrom = statistics.stdev(results[key])\n",
    "        \n",
    "        results_average[key] = mean_of_chrom\n",
    "        results_coefficient_of_variation[key] = st_dev_of_chrom/mean_of_chrom\n",
    "        \n",
    "    return results_average, results_coefficient_of_variation\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "def convert_results_to_pandas(results_average, results_average_coef_var, method_name):\n",
    "    \"\"\"\n",
    "    Converts provided results dictionaries into a single Pandas DataFrame.\n",
    "\n",
    "    This function takes in two dictionaries containing average results and \n",
    "    coefficients of variation and transforms them into two Pandas DataFrames. \n",
    "    It then merges the two DataFrames into one based on the chromosome index \n",
    "    and returns the merged DataFrame.\n",
    "\n",
    "    Parameters:\n",
    "    - results_average (dict): A dictionary where keys are chromosome names \n",
    "      (or indices) and values are the average processing times for each chromosome.\n",
    "    - results_average_coef_var (dict): A dictionary where keys are chromosome names \n",
    "      (or indices) and values are the coefficient of variation of the processing \n",
    "      times for each chromosome.\n",
    "    - method_name (str): A string representing the name of the method/technique \n",
    "      being used. This is used to label the columns in the resulting DataFrame.\n",
    "\n",
    "    Returns:\n",
    "    - merged_data (DataFrame): A DataFrame containing two columns: \n",
    "      one for the average results and one for the coefficients of variation, \n",
    "      both indexed by chromosome.\n",
    "\n",
    "    Note:\n",
    "    This function assumes that the keys in the provided dictionaries (chromosome names) \n",
    "    are numeric or can be converted to numeric for sorting purposes. The resulting \n",
    "    DataFrame will have chromosomes sorted in numeric order.\n",
    "    \"\"\"\n",
    "\n",
    "    pd_results_average = pd.DataFrame(results_average, index=[0]).transpose()\n",
    "    pd_results_average = pd_results_average.reset_index()\n",
    "    pd_results_average['index'] = pd.to_numeric(pd_results_average['index'])\n",
    "    pd_results_average = pd_results_average.sort_values('index').set_index('index')\n",
    "    pd_results_average.columns = [method_name]\n",
    "    \n",
    "    pd_results_average_coef_var = pd.DataFrame(results_average_coef_var, index=[0]).transpose()\n",
    "    pd_results_average_coef_var = pd_results_average_coef_var.reset_index()\n",
    "    pd_results_average_coef_var['index'] = pd.to_numeric(pd_results_average_coef_var['index'])\n",
    "    pd_results_average_coef_var = pd_results_average_coef_var.sort_values('index').set_index('index')\n",
    "    pd_results_average_coef_var.columns = [f'{method_name}_coef_var']\n",
    "    \n",
    "    merged_data = pd.merge(pd_results_average, pd_results_average_coef_var, left_on='index', right_on='index')\n",
    "    return merged_data\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Benchmark Setup Steps\n",
    "\n",
    "1. **Installation**: Install 3dnome and cudaMMC from the repositories.\n",
    "2. **Run the Script**: Execute the `benchmark_modelling_methods.py` script. This script can be found in the `cudaMMC` repository under the `benchmark` directory. After running this, you can use your results for further benchmarking analysis.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Time Performance Analysis\n",
    "\n",
    "Initially, we will assess both the time performance and the Coefficient of Variation of the algorithm's time performance across chromosomes. This analysis utilizes smaller datasets derived from the `hg19` long-read CTCF ChIA-PET experiment. The examination encompasses all autosomal chromosomes.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "#set your dir with results:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "/home/michal/Projects/cudaMMC_calculations/tests/tests_results\n"
     ]
    }
   ],
   "source": [
    "cd tests/tests_results/"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "paths_3dnome_logs = 'logs/3dnome/3dnome_logs_single_runs/'\n",
    "paths_cudaMMC_logs = 'logs/cudaMMC/cudaMMC_logs_single_runs/'\n",
    "path_to_chrom_sizes = \"data/hg19/human_hg19_chrom_sizes.txt\" #find in benchmark dir"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "files_time_cpu = [os.path.join(paths_3dnome_logs, fname) for fname in os.listdir(paths_3dnome_logs) if fname.endswith('txt')]\n",
    "files_time_gpu = [os.path.join(paths_cudaMMC_logs, fname) for fname in os.listdir(paths_cudaMMC_logs) if fname.endswith('txt')]\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "results_gpu, results_gpu_coef_var = take_times_from_files_calc_average_time(files_time_gpu)\n",
    "results_cpu, results_cpu_coef_var = take_times_from_files_calc_average_time(files_time_cpu)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "pd_results_gpu = convert_results_to_pandas(results_gpu,results_gpu_coef_var, 'gpu_times')\n",
    "pd_results_cpu = convert_results_to_pandas(results_cpu,results_cpu_coef_var, 'cpu_times')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "merged_pd_results = pd.merge(pd_results_cpu, pd_results_gpu, left_on=pd_results_cpu.index, right_on=pd_results_gpu.index).rename(columns={'key_0':\"chr_id\"})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "speed_up = []\n",
    "for index, row in merged_pd_results.iterrows():\n",
    "    speed_up.append(row['cpu_times']/row['gpu_times']*100)\n",
    "\n",
    "merged_pd_results['speed_up'] = speed_up\n",
    "chr_names = [f'chr{i}' for i in list(merged_pd_results['chr_id'])]\n",
    "merged_pd_results['chr_names'] = chr_names\n",
    "chrom_sizes = pd.read_csv(path_to_chrom_sizes,sep='\\t', header=None)\n",
    "chrom_sizes.columns = ['chr_names', 'chrom_size']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "merged_pd_results['cpu_times_min'] = (merged_pd_results['cpu_times']/60).round(2)\n",
    "merged_pd_results['gpu_times_min'] = (merged_pd_results['gpu_times']/60).round(2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>chr_id</th>\n",
       "      <th>cpu_times</th>\n",
       "      <th>cpu_times_coef_var</th>\n",
       "      <th>gpu_times</th>\n",
       "      <th>gpu_times_coef_var</th>\n",
       "      <th>speed_up</th>\n",
       "      <th>chr_names</th>\n",
       "      <th>cpu_times_min</th>\n",
       "      <th>gpu_times_min</th>\n",
       "      <th>chrom_size</th>\n",
       "      <th>chr_size_small</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>21</td>\n",
       "      <td>70.285068</td>\n",
       "      <td>0.064486</td>\n",
       "      <td>20.127466</td>\n",
       "      <td>0.020129</td>\n",
       "      <td>349.199789</td>\n",
       "      <td>chr21</td>\n",
       "      <td>1.17</td>\n",
       "      <td>0.34</td>\n",
       "      <td>48129895</td>\n",
       "      <td>48.129895</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>22</td>\n",
       "      <td>172.469018</td>\n",
       "      <td>0.060234</td>\n",
       "      <td>26.141358</td>\n",
       "      <td>0.028638</td>\n",
       "      <td>659.755388</td>\n",
       "      <td>chr22</td>\n",
       "      <td>2.87</td>\n",
       "      <td>0.44</td>\n",
       "      <td>51304566</td>\n",
       "      <td>51.304566</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>19</td>\n",
       "      <td>360.093128</td>\n",
       "      <td>0.158354</td>\n",
       "      <td>37.500894</td>\n",
       "      <td>0.019712</td>\n",
       "      <td>960.225451</td>\n",
       "      <td>chr19</td>\n",
       "      <td>6.00</td>\n",
       "      <td>0.63</td>\n",
       "      <td>59128983</td>\n",
       "      <td>59.128983</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>20</td>\n",
       "      <td>253.664935</td>\n",
       "      <td>0.056100</td>\n",
       "      <td>31.955694</td>\n",
       "      <td>0.011885</td>\n",
       "      <td>793.801988</td>\n",
       "      <td>chr20</td>\n",
       "      <td>4.23</td>\n",
       "      <td>0.53</td>\n",
       "      <td>63025520</td>\n",
       "      <td>63.025520</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>18</td>\n",
       "      <td>201.681090</td>\n",
       "      <td>0.150578</td>\n",
       "      <td>31.185421</td>\n",
       "      <td>0.014987</td>\n",
       "      <td>646.715946</td>\n",
       "      <td>chr18</td>\n",
       "      <td>3.36</td>\n",
       "      <td>0.52</td>\n",
       "      <td>78077248</td>\n",
       "      <td>78.077248</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    chr_id   cpu_times  cpu_times_coef_var  gpu_times  gpu_times_coef_var  \\\n",
       "20      21   70.285068            0.064486  20.127466            0.020129   \n",
       "21      22  172.469018            0.060234  26.141358            0.028638   \n",
       "18      19  360.093128            0.158354  37.500894            0.019712   \n",
       "19      20  253.664935            0.056100  31.955694            0.011885   \n",
       "17      18  201.681090            0.150578  31.185421            0.014987   \n",
       "\n",
       "      speed_up chr_names  cpu_times_min  gpu_times_min  chrom_size  \\\n",
       "20  349.199789     chr21           1.17           0.34    48129895   \n",
       "21  659.755388     chr22           2.87           0.44    51304566   \n",
       "18  960.225451     chr19           6.00           0.63    59128983   \n",
       "19  793.801988     chr20           4.23           0.53    63025520   \n",
       "17  646.715946     chr18           3.36           0.52    78077248   \n",
       "\n",
       "    chr_size_small  \n",
       "20       48.129895  \n",
       "21       51.304566  \n",
       "18       59.128983  \n",
       "19       63.025520  \n",
       "17       78.077248  "
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "merged_pd_results_chrom_sizes = pd.merge(merged_pd_results, chrom_sizes, how='left', on='chr_names')\n",
    "merged_pd_results_chrom_sizes = merged_pd_results_chrom_sizes.sort_values(by='chrom_size')\n",
    "chr_size_small = [i/1000000 for i in list(merged_pd_results_chrom_sizes['chrom_size'])]\n",
    "merged_pd_results_chrom_sizes['chr_size_small']=chr_size_small\n",
    "merged_pd_results_chrom_sizes = merged_pd_results_chrom_sizes.sort_values(by='chr_size_small')\n",
    "merged_pd_results_chrom_sizes.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 432x288 with 0 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.clf()\n",
    "plt.rcParams.update({'font.size': 18})\n",
    "merged_pd_results_chrom_sizes.plot.scatter(x = 'chr_size_small', y = 'speed_up', title = \"Increase in performance with \\n respect to the chromosome size\", c = 'red', xlabel=\"chromosome size in bp.\", ylabel=\"speed up in %\", grid=True)#, s = 'chrom_size');  \n",
    "plt.xlabel('chromosome size in Mbp.')\n",
    "plt.ylabel('speed up in %')\n",
    "plt.figsize = (2.36,1.57)\n",
    "# plt.savefig(\"figures/performance_hg19_speed_up_300dpi_after.png\", format='png',dpi=300,bbox_inches='tight',pad_inches=0.1)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 432x288 with 0 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZkAAAFECAYAAAD1BUM/AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAABSC0lEQVR4nO2dd5wdVfn/35+ENBKSEBK6ZOldWigiYvga/ElRQIqGGgyIKCooKogliiIICIIFgUBASMBAaEoNEIq0QAhFetlAqAkkIZW05/fHOTc7uTu3zO69e/fuPu/Xa15z72nzzJkz85z6HJkZjuM4jlMNutRaAMdxHKfj4krGcRzHqRquZBzHcZyq4UrGcRzHqRquZBzHcZyq4UrGcRzHqRquZNoQBQ6RdL2kRkkL4vFGdDtYUtcaytdF0q8kvSJpsSSTNCnhv6Gk8ZI+lLQs+o+Ifiap1fPhK5VOvVEq7+sBSZOi3EPb6HrtvqxI+q6kZyUtjPI21lqmtmaVWgvQWZC0PjAB2Bkw4FngSWA5sBFwKHBYdNu5RmL+APgNMAu4BZgPvAThIwjcCOxAkP1uYCnwWk0krSLxQzAY2NDMGtvosgXzvjMiaRTwa+A3ZjaqttK0DEkHAn8FFgB3AbOBmTUUqSa4kmkDJA0E/gtsANwHnGhmr+SFWRf4OTC87SVcwdfj+RAzuy/Pr4GgYBqBHcxseZ7/lhWSoVLp1BvF8r5eOBpYFXirja7X3stK7pl+38yuqKkkNcSVTNvwd4KCeRD4ipktyQ9gZu8CJ0m6vq2FS7B+PL9RxG9aioLBzCpS665UOnVIsbyvC8ysrZRL7nrtvazU/TOtCGbmRxUPYFNCl5gB27QwjTWB84FXgEWEZveDhJqjisTbD/gP8CGwGHgbuALYKC/cpChf2jGiiF9jIg0LxSlVjtWA04HJwBxC98FrwNXA7nlhi6XTh9DamwLMjelMBU4FuqeEH5O4hy0I3X0zYx5OAb6RF35okXs1oKHM59UlXvOh+KwWAS8D5wIDM+T90CLXWAV4P4bbuEi4F2KY3RJuewN/I3R7fhzlewO4BBhcIJ2cnEOBYYTu0o+j2/b5YfLibg2cCTwKvEcoi+8DNwGfT7lWY5E8GVVmWdkQuDSm9SnwEaHLav8y7u9zwJ3x2S0AHga+lOF9HUNh+Ue0pJzklc9JhHfhHMJ79Clwc0u+LW1x1FyAjn4Ap8SCMbWF8TcD3olpvA1cD9wRC6QB15KiaOJHxGIBfBgYD/wvus0GdkmEPS2+GPOi/w3x/xhgj3i+M/q9n/A7L5FG6gsfX/ZXE9f9d7yHx6JsY/LCF0rnM4QxCiN8qP4T05oZ3e4nT9EkXvaL4r29AFwHPJ546Q9PhN+iSD6MSXvxU+RUvD+Lz+iO+H96dHsL2KTMvN+ixLX+FOP8poB/bvzv5Tz314CFhPG/G4FbgWkx7EfA5ilpTYr+lxAqTU8DYwkfyM/mhRmaF/fyGOf5+NzGA8/EsEuBb+aFP49QebB4Tj6DA8soK7sTKjNGqJiNi+VjaXT7Q5H7OxdYEvPmOuC56L4E2LPMd/a4KGuuEnBnQv49WlJOYpyh0e9x4Kl4j7fG/LykFt+3svKj1gJ09AP4ZywYl7cw/uQYfwyJjyiwOU3K58S8ON+N7k+nFNTvRL/XgVXy/BopUGNPFPBJBeRs9sITamq5j8VYYLU8/4G5l65EOiIoJYsfoB4Jv/40KcDf5sUbk0sP+Gme36nR/Y2UeymYD2U8r5PSPhJAD0KFwIDHK3FNYLvEs0yraFwc/c/Icz8A6Jfn1pUw8cCAO1PSmpTIyxEF5MmFGZrn/kVSWkjAvoRWzcfAqnl+o8hruZRZ5noSKmMG/D6ZLwTlMzf67VNA9uUklF4se7l8vC9jWUjNj5aWE1ZuaT9JGZWe9nDUXICOfhBqKKm1pzLi7klT7XK1FP8R0f+1hFtXQk1/GXkKJhHm1hjva3nuBT90tEzJHBTdXwK6lXnPaensm7s26R/TdQitopl5H5UxMd6jKXG60dTdM7jcfChD/jdi3CNS/PoTWnNGc+XaomvS1CL4Qsr9zYgfzQ0ypDc9lp38CkHug9lMAaWEGZrherkP6n557qNomZI5OlHmuqTEyaU7sYDs16XEGUhTr0BZ5bhUfrSknLCyktmtXDlqffg6mfbNnvF8k5nNTfG/htCM31jSetFte2Bt4GkzKzS9+MF43q1SghbgK/H8T0uZ7JCBfeL5BotvWxIze4/QJbcGYQwsnztT4iwB3ox/122FbCuI09Q3JNTOr0u55mzCNHYItftKcFU8H53nvg/h43i/pQzISxoc13BcKGm0pDGSxhCUUxdgkwLXu7klQkrqJ+kISX+UdFnietvEIJu1JN0Ucu/MNZYyQYUwJgnw+QJr0u7IdzCzmYQKSXdCnraKCpSTD8zssdbK0Vb47LLqk5sXP6gFcXOK4800TzNbKuktYOMY9h3CmhuAncpYqNYSmbKwQTy/3Mp0cvd0saSLS4QdROiHT/J2gbA5xd2jpYLlkXteb5nZsgJh3sgL21quJQwAHyrp+2a2KLrnlM7V+REk/Y4wFlRs4W/fAu7Tsgoo6SDCx71/C66XlaLvDKGltpjQrbYGYVJMkmJlZQCVKSutLSeZn0EtcSVTfaYARwJD2uh6uQ/HW4TBzmI8XmVZSim5csnd030U/gjk+CjFLa1G2yEwsw8k3U3oUjwAuF5Sf2B/woLOG5PhJR0CnAF8ApxMKCPvmdmn0f8RwuwqFbjkwizySfoMYTyuJ2GMZByha3CBmZmkswgzDwtdr62ph7KS6RnUGlcy1ec/hOnH20na2sz+lyHuO/G8UZqnpFVoai3kwuY+wm+Z2YiMslaaXDdNa7tCcvc01sxGtzKtapJ7BhtI6lqglrpRXthKcBVByRxNmKH0DUKN+3ozm5cX9pB4PsPMrkxJq1A3WUvZj6BgbjSzX7TB9Yq+M4S1K90JM7o+rvC1y6VW5aQm+JhMlbGwsv+m+PevkroVCy9pj8Tf3NjJgZJWSwl+BKEP/XUzyxXGJwgvzy6xFllL7o7no0rddwlyYyqHFA1VORbHc6ZKmJlNJ3TTdAe+me8vqR9hMgTAA60RMI9bCQPFX5a0FkW6yghdPpDSIpT0JSrfhVrsegMJa3bSaNEzoOmdOSKaQsrn2Hj+r5ktzZh2RahhOakJrmTahhMJfcFfBO6Q1GxwWtJaki4k2K0CwMweJMyHHwBclPxQxzR+H/+en4izBPgdoQDfImn7lGutKunw+EGqJrcQFvxtAVwhqU+eHAPzlGohbiJMx/6KpAskNeu/l9Qg6chKCE1T7bElZksuiOc/SNo45yipO/AXwrjEE2b2cKskTBDHYf5F+CD/kjBV923Su0tzq+SPzytPDQTLFJUmd72Dk+VNUm/C+pn+BeK19BmMj3E3B34jaUU3nKRdgR/Hv3/KmG6lafNyUjNqPb2tsxyEbq0naZqL/zThhbie0PpYFv0ey4uXXIz5FmE2yu00LcYcS/E1EssJ40I30LQIMhd3i7w4jVRwCnN035im6ZqzgNviPWRdjLkBKy8mfYAw6H0LYaA/Le/G0LJ1HT+I7p/EfLs8HmuU8Zy7ED74Rug7vz3eb27txtukTC0vlvdllq/dc3kXj98XCLcJTQsVG6Osd0ZZHyDY2EvLk9S8KhWG0NKeGt3nxOd1I2F69QeECQHNpioTZkjOj34PAlfGZ/C1RJhCZeXziXt8ifCO3Et5izFT768lz6dYmi0pJ5R4B9vrUXMBOtMRC9ZhBOXyVixcCwkf4euAA0mf278moeb1KuHD/AlhpfUxFDcrs1csyNNjvI8JH+oxhOZ4t7zwBV+kUgW80Asf/foRLOo+Ez8c8+O9jCFvvn+JdHoBPyRYMJhF6FJ5h2Cu5EziyvNE+DG0TMl0AX4BvEiTQi77AxPjHxvl/CTm/auEhaSDCsTJ/BFLSeOVhKzNVu0nwm1CU41/IeFDPIowjlMoT1Ldy8zPvonyuyiWx9GEmVOjKLAeJpbf+wmViuX54UqUlY2AywgzsXILPu8mb21YuffXkudTRpqZygl1qmQUhXccx3GciuNjMo7jOE7VcCXjOI7jVA1XMo7jOE7VcCXjOI7jVA1XMo7jOE7VcCXjOI7jVA1XMu0ASY2SLK66brdImhTlHJox3tAYb1JVBGtD4n34vP8KEa0+XCHpHUlLY/6OqrVcTuVwJeO0mpYqn/aGpFH+kWtzLicsSFxAWDh8FcFCgNNBcCvMThaOBlalybpyZ6Ql9sycFKKdrv0IVgd2sOYWo50OgCsZp2wsZYfFzoaZvVQ6lFMmaxO+Qe+4gunA1NquTUc7gIMJNrNeIBjpy9mGOg8YWCBOI4Vthm1KMGw5k9Cl8DRwfPQrZrtpQ+DSmPanhM287gL2LxB+UkxvKDCMYOfp4+i2fX6Y+L+BJltZaUcu3ND4fxLBPtZvgNeiXNOBC4HeKTKNivFGAYMJ201/QLB99hjw5UTYr9FkA2oWwRbcuhmeW+4ZpB2jEuEKGWVc4Q4cF5/TAuBdgrHSPtFvAHARoTW4KJaTEUXk6g6cBDxCsOG1iGBT7UxgtYxlc0yUcwSwI8FY6UeJ/DysUnLkPbuN47N7j2AI9uRi5SYvnTUJVsZfidecTTCYeTTphmHz7/Fmwu6Xy4EDq/WsgF2jnE/F631KMHJ5DbBNGc9jC4Lh0JnxWlOAb5R4Ht8j2DCcFeO8GdPYt5rlKOtRtYQ760Gw9PpJfGn/RbCu+kEsTG+SbviukRQlA2wXC5ARPsrjCLtDLo0FutAHb3earNC+EuPdT3lWaC+hyUr02FiIP5sXZmj8PzC+KO9H9zvj/9yxRQw3NPo/EtOYRXj5/xPzyoC7UmQaFf3GEKz2vkpQHk9E9yWE7RN+EO/tfoLV5Hej/wtAjzKf23k0WQuemncfBybCFVUyMZ1FhL3ibyZ8xA24h7Dd7ysExXo9wepxzvDj0Slp9o95ZjGdu2OaOavczwMDMpTNMYlnvChRNh6gyQr4zyshR+LZjY3P+614z/8Gvh1luSGGmZfM70QaSQvkb8f4d9BktPRa8hRN4h4vJ3zoX473eA+wXxWf1URCeZxKsDQ9IV7bCApszyLP46KYBy8QyvfjCRkPT4k3gKZ3YH58HuMIlax55BnQbMnzq+g3sS0+vJ3pAA4FeuW59YyF3oBLUuI0kqdkCNvRPhPd/0zCOjNhe9y5pHzw4rVy5sJ/n3wJCconF2+fvHiTEgV7RIF7y4UZWo57wn9oIu1HgNUTfhsTalaW/yLS9KHKfRCSefD76P4y4SP2uYRff0ItzYBjMjy73PVGFQlTSsm8B2yWcF+PULPNvczjgO4J/xOi3xspaeZMwV8L9M17xmOi39UZ7m9MQs7z8/LzS4QP7jLC+Eir5Mh7dpeRZ/E7hmmI/o0F5J1MUyUjmWeb0/SBPLHIPf6K9NZONZ7VV4A1U9yPi3FezJclT9af5vmdWuRat0W/+8irtAKrAV+qZjnKelQlUT9SMjqYqV8CzEjxa6S5kvlidPsA6JkS55xcAc1zPzq6v0T6tgG5l39invuk6H5nkXvIhRlajnvCf2j0XwZsleL/l+j/6wKyvpF82aNf/8QL+ruUNH8Y/a7M8Ixy1xtVJEwpJXNcit8F0W8OeXvSAF0JXSQGDE64b01TS7RZa4wwAeP9WKbKqoUmPihv5+dn9P979B/dWjkSeTmT2P2UEreBAkoG2JOmmndad9yI6P9agXt8Ia38V+NZlZHvuT16ti4g66MpcbrR1F2dLBc7JPKlfxnXrng5ynr4FOYqIGlLSSdLujiuARhDeIEXAwMlrV5GMnvG8y0Wdj7MZ2yJeNeY2fIU/yvi+fOSuqb431yGbC3lLTN7IcX95Xhet0C8SWa2OOlgZrMJLxo0bfOc5PUSaVaLYrI8ZWYfJT0s7O/eGP8mZf1KPN9qZp/mJ2hmCwib4K0CDMko4w35+Rm5Jp73TLi1Vo6J1rJB/ZwMN5nZ3AKyLgE2lrReiv+tBcp/kko9KwAkrSlppKTzJV0uaUx899eOQTYrIMed+Q4Wdrh9M+VauecxIb4DpahmOSoLn11WQSStAvwD+FaJoH0JXTzFyL040wr4F3LPxXuzgP90grLrSeh3/rDMdCtBs33eI7mPSI8C/tMLuM8j3EOaf+7DVijNalFMlmL3ASvLulE8/1jSjynOoDJly9FYwn39CsrR0vJUtByb2VJJbxG6W9ejabvmLNet1LNC0ncJXZA9i1yv2bbhkSzvxQbx/DLlUc1yVBauZCrLyQQF8w5wCmHHxg9ztUZJ7wLrEMZbysUKuJeqpbWUhVVKF1ouc6l41cqLzJSoPWeRM9fKfILQn1+MalYMWitHNctTMUpet1LPStLOhC7fpcCPCJMbppvZwug/FhhO4fc+S7ko9D0oRM3LkSuZynJIPH/HzP6d9JDUm6Zmczm8G88bFPBvKOCeq9FtVMB/fcJ0xkWEPl+nfZKr3d5tZr+scNqDC7g3xHOyVVBNOYpRtBzHXoMN8sLWioMJCuQiM7sgxX+TCl4rt1atUNdbPrV6fivwMZnKMiCe05q/3yRbC+aheD5AUlqXz/AC8R6M5yMkpT3fY+P5v2a2NIM8xcj179d7paU93Ueun/6gAs+xNRwiqVuK++Hx/GDCrZpyFCMnw4GSVkvxP4IwOP66mdVayRR87yVtQRisrxS5caSvS+pXRvhaPb8VuJKpLLnV4CdKWqFQJG0P/CFjWpMI0yjXBs5OFhBJuxAWYqUxnlCz2xz4TZ4cuwK5ftk/ZZSnGLmXvN5NrrSb+zCzp4BbCbODrpW0Vn4YSWtJOr4FyX8G+H1e2RhK6OpdDvy1jeQoiJk9SFjYOAC4KKkUJW1KmMIOYRyk1uTe+6Ml9ck5ShoIXEkFKy1mNoWwvmwN4IZ4jRVIWk3SlxLha/L8krSHGltH4mzCbI4TgKGSphJWLO9JmKu+O4W7KlbCzEzS0QRlczKwv6QnCYNzXyR8CH5ImGGTjLdQ0jcIi0B/ARwqaQqwVozXFTjbzG5vzY3mcRNhSum5kvamaTLBuWZW7gBle+AuwsK5r0t6kDDTaBlhZs6tNZDnGMKaiG8CX4vlaRphcHkzYCtCXl+WMd1/EMrOAZKeIowT7kmodP4qfpjaQo5SHE5YYDsC+JKkRwiD5/9HGAwfR1hYWmuuJIzB7gi8LulhQitrKKHb+2bgwApebwShrA4DpknKrfpfn9BqehK4NxG+Vs8P8JZMRTGzR4DdCE3UAcBXCTWOU4EjW5De08AuhJXRAwgFdRBhhft5MdjMlHj/JRS2ywnrcw6J/+8DDjCz07PKUkLOW4HvEmp0w4CR8VinktepNmb2PrA/QbF/lvByjiR8PGohz2xgL0IX56OE1umhhMrKIsKajq+3IOnHgM8TlOg+BJMoTwHDzezMNpSjKGb2CqHcXkBYvX8QsAdhkeYI4AiLiz1qiZnNAnYmLA9YSDD6uS0wmvA9mFPh680kPL9TCL0duxO+DesTKpdn54WfTQ2eXw61g2fktABJRxDWCvzHzPavtTxO+yeu2TgGONbMxtRWGqez4C2ZdoykfpKazSKJYzLnxr9Xta1UjuM45eNjMu2bzwDPSXqJYCBzEWFK5w6EmWrjzGx8DeVzHMcpiiuZ9s07BOOYexH6T/sSVgE/SGjBjKmZZI7jOGXgYzKO4zhO1fAxGcdxHKdqeHcZMHDgQGtoaGh1OvPnz6d3796tF6gT4HmVDc+vbHh+lU9r8uqpp56aaWZFDWu6kgEaGhp48sknW53OpEmTGDp0aOsF6gR4XmXD8ysbnl/l05q8klTSqKZ3lzmO4zhVw5WM4ziOUzVcyTiO4zhVw5WM4ziOUzV84L8AS5YsYfr06SxatKjsOP369ePFF0ttPudA9rzq2rUr/fv3Z+DAgXTp4nUjx6kXXMkUYPr06ay22mo0NDSQ2HajKHPnzmW11dL2V3LyyZJXZsaSJUv44IMPmD59OhtsUGizUMdxymXGDGhshKWV2rqwAF4lLMCiRYtYY401ylYwTvWQRPfu3VlvvfWYP39+rcVxnLpn3DgYPBj23hueey78rxaZlIykb0r6r6QPJS1LOaqsE9sWVzDtC+8mc5zWM2MGjBwJCxfCnDmwfHn4P2NGda5X9lsr6SfAtcCmhE2Prk45/lkFGZ3IgQceyHbbbccOO+zAF77wBaZOnQqExaRbbLEF2223HZtssgkHHHAAjzzySNG05s6dyw9/+EM22WQTtt12Wz772c9yzDHHMH36dABGjRqFJB5//PEVcUaNGsWpp5664v/zzz/PV77yFTbZZBM22mgjDjnkEN5+u2mb8xEjRiCJ//3vfyvc3nzzTbp06cJRRx0FQGNjI6ussgrbb7/9imPYsGGtzivHcdJpbITu3Vd269YtuFeDLGMy3wMeB75kZgurI45TjKuuuop+/foBcMstt/Ctb32LKVOmAHDDDTewzTbbADBhwgT23Xdf7rrrLnbddddm6ZgZ++23H9tssw3PP/88PXv2ZNmyZYwdO5bGxkbWX399AAYPHszpp5/Offfd1yyNWbNmMWzYMC6++GIOPfRQAC644AK+/OUv8+yzz9KtW9iSfccdd+Sqq67ij3/8IwBjxoxhhx12WCmt/v37r1CYjuNUl4YGWLx4ZbclS4J7NcjS/7A2cI0rmNLMmAGTJ1e++ZlTMABz5swp2H309a9/ne985zucd955qf733nsvjY2N/PnPf6Znz55AmL111FFHsccee6wId/DBB/PRRx9x1113NUvj4osvZujQoSsUDMApp5xC3759ue6661a4HXroodx8880sW7YMM+O6667j8MMPz3bjjuNUjEGDYPRo6NUL+vaFLl3C/0FFLZC1nCxK5jWgf3XE6DgkB9QGD678gNpxxx3HBhtswBlnnMFVVxXeFHPXXXddqZsqyZQpU9hxxx1XtDYKIYmzzjqLn//85+RvCfHss8+y2267NYuz22678cwzz6z436dPHz73uc9x9913M2nSJLbZZhvWWGONleLMnj17pe6y73znO0XlchyndQwfDtOmwcSJsO224X+1yKJkzgdGSupTLWHqnZkztdKA2sKFlR9Qu/zyy3nrrbc466yz+MlPflIwXJZ9giZOnMj222/Pxhtv3Kz1s99++9GrVy/Gj195A84s6Y8YMYKrrrqKMWPGMGLEiGb+ue6y3HHJJZeUnbbjOC1j0CDYeWdYpcoLWbIomWXAh8BLkn4r6VhJR+cfVZKzLpg2TW02oHbUUUdx//3389FHH6X6T548ecUYza677sr222/PF77wBQB22GEHnn76aZbGCfLDhg1j6tSpHHTQQcybN69ZWmeffTa//OUvV4QH2G677XjssceahX388cf57Gc/u5Lb0KFDeeaZZ3j44YfZZ599WnbDdUC1ukkdp57JosPGJH7/okAYI8wy65QMHmxVG1CbN28es2bN4jOf+QwAt912GwMGDGDAgAHNwt5yyy38/e9/XzGWkpwhBkGprL/++pxyyimce+65K8ZlFixYQJ8+zRuqe+yxB5tuuinXXnstBx98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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.clf()\n",
    "plt.figsize = (2.36,1.57)\n",
    "plt.rcParams.update({'font.size': 18})\n",
    "plt.tight_layout()\n",
    "ax=merged_pd_results_chrom_sizes.plot(x = 'chr_size_small', y = 'cpu_times_coef_var', kind='scatter', title = \"Coefficient of variation for \\n algorithm time performance\", c = 'blue')\n",
    "merged_pd_results_chrom_sizes.plot(x = 'chr_size_small', y = 'gpu_times_coef_var', kind='scatter',ax=ax, c = 'green')\n",
    "\n",
    "plt.xlabel('chromosome size in Mbp.')\n",
    "plt.ylabel('Coefficient of variation')\n",
    "plt.legend([\"3D-GNOME\", \"cudaMMC\"], loc='upper left', frameon=True, fontsize=11)\n",
    "plt.grid()\n",
    "\n",
    "# plt.savefig(\"figures/coef_var.png\",dpi=300,bbox_inches='tight',pad_inches=0.1)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>chr_id</th>\n",
       "      <th>cpu_times</th>\n",
       "      <th>cpu_times_coef_var</th>\n",
       "      <th>gpu_times</th>\n",
       "      <th>gpu_times_coef_var</th>\n",
       "      <th>speed_up</th>\n",
       "      <th>chr_names</th>\n",
       "      <th>cpu_times_min</th>\n",
       "      <th>gpu_times_min</th>\n",
       "      <th>chrom_size</th>\n",
       "      <th>chr_size_small</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>21</td>\n",
       "      <td>70.285068</td>\n",
       "      <td>0.064486</td>\n",
       "      <td>20.127466</td>\n",
       "      <td>0.020129</td>\n",
       "      <td>349.199789</td>\n",
       "      <td>chr21</td>\n",
       "      <td>1.17</td>\n",
       "      <td>0.34</td>\n",
       "      <td>48129895</td>\n",
       "      <td>48.129895</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>22</td>\n",
       "      <td>172.469018</td>\n",
       "      <td>0.060234</td>\n",
       "      <td>26.141358</td>\n",
       "      <td>0.028638</td>\n",
       "      <td>659.755388</td>\n",
       "      <td>chr22</td>\n",
       "      <td>2.87</td>\n",
       "      <td>0.44</td>\n",
       "      <td>51304566</td>\n",
       "      <td>51.304566</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>19</td>\n",
       "      <td>360.093128</td>\n",
       "      <td>0.158354</td>\n",
       "      <td>37.500894</td>\n",
       "      <td>0.019712</td>\n",
       "      <td>960.225451</td>\n",
       "      <td>chr19</td>\n",
       "      <td>6.00</td>\n",
       "      <td>0.63</td>\n",
       "      <td>59128983</td>\n",
       "      <td>59.128983</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>20</td>\n",
       "      <td>253.664935</td>\n",
       "      <td>0.056100</td>\n",
       "      <td>31.955694</td>\n",
       "      <td>0.011885</td>\n",
       "      <td>793.801988</td>\n",
       "      <td>chr20</td>\n",
       "      <td>4.23</td>\n",
       "      <td>0.53</td>\n",
       "      <td>63025520</td>\n",
       "      <td>63.025520</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>18</td>\n",
       "      <td>201.681090</td>\n",
       "      <td>0.150578</td>\n",
       "      <td>31.185421</td>\n",
       "      <td>0.014987</td>\n",
       "      <td>646.715946</td>\n",
       "      <td>chr18</td>\n",
       "      <td>3.36</td>\n",
       "      <td>0.52</td>\n",
       "      <td>78077248</td>\n",
       "      <td>78.077248</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>17</td>\n",
       "      <td>645.013491</td>\n",
       "      <td>0.204972</td>\n",
       "      <td>46.746135</td>\n",
       "      <td>0.012088</td>\n",
       "      <td>1379.822083</td>\n",
       "      <td>chr17</td>\n",
       "      <td>10.75</td>\n",
       "      <td>0.78</td>\n",
       "      <td>81195210</td>\n",
       "      <td>81.195210</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>16</td>\n",
       "      <td>360.820090</td>\n",
       "      <td>0.156666</td>\n",
       "      <td>38.419104</td>\n",
       "      <td>0.026036</td>\n",
       "      <td>939.168423</td>\n",
       "      <td>chr16</td>\n",
       "      <td>6.01</td>\n",
       "      <td>0.64</td>\n",
       "      <td>90354753</td>\n",
       "      <td>90.354753</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>15</td>\n",
       "      <td>447.699067</td>\n",
       "      <td>0.262184</td>\n",
       "      <td>39.821931</td>\n",
       "      <td>0.022703</td>\n",
       "      <td>1124.252524</td>\n",
       "      <td>chr15</td>\n",
       "      <td>7.46</td>\n",
       "      <td>0.66</td>\n",
       "      <td>102531392</td>\n",
       "      <td>102.531392</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>14</td>\n",
       "      <td>376.040273</td>\n",
       "      <td>0.197917</td>\n",
       "      <td>39.416648</td>\n",
       "      <td>0.012373</td>\n",
       "      <td>954.013838</td>\n",
       "      <td>chr14</td>\n",
       "      <td>6.27</td>\n",
       "      <td>0.66</td>\n",
       "      <td>107349540</td>\n",
       "      <td>107.349540</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>13</td>\n",
       "      <td>284.690888</td>\n",
       "      <td>0.193448</td>\n",
       "      <td>35.200097</td>\n",
       "      <td>0.014523</td>\n",
       "      <td>808.778702</td>\n",
       "      <td>chr13</td>\n",
       "      <td>4.74</td>\n",
       "      <td>0.59</td>\n",
       "      <td>115169878</td>\n",
       "      <td>115.169878</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>12</td>\n",
       "      <td>908.004200</td>\n",
       "      <td>0.222802</td>\n",
       "      <td>62.625701</td>\n",
       "      <td>0.009319</td>\n",
       "      <td>1449.890670</td>\n",
       "      <td>chr12</td>\n",
       "      <td>15.13</td>\n",
       "      <td>1.04</td>\n",
       "      <td>133851895</td>\n",
       "      <td>133.851895</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>11</td>\n",
       "      <td>793.615437</td>\n",
       "      <td>0.135030</td>\n",
       "      <td>59.065907</td>\n",
       "      <td>0.020870</td>\n",
       "      <td>1343.610014</td>\n",
       "      <td>chr11</td>\n",
       "      <td>13.23</td>\n",
       "      <td>0.98</td>\n",
       "      <td>135006516</td>\n",
       "      <td>135.006516</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>10</td>\n",
       "      <td>879.360636</td>\n",
       "      <td>0.307746</td>\n",
       "      <td>55.700513</td>\n",
       "      <td>0.012450</td>\n",
       "      <td>1578.729871</td>\n",
       "      <td>chr10</td>\n",
       "      <td>14.66</td>\n",
       "      <td>0.93</td>\n",
       "      <td>135534747</td>\n",
       "      <td>135.534747</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>9</td>\n",
       "      <td>687.860546</td>\n",
       "      <td>0.177817</td>\n",
       "      <td>47.334234</td>\n",
       "      <td>0.018216</td>\n",
       "      <td>1453.198847</td>\n",
       "      <td>chr9</td>\n",
       "      <td>11.46</td>\n",
       "      <td>0.79</td>\n",
       "      <td>141213431</td>\n",
       "      <td>141.213431</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>8</td>\n",
       "      <td>959.809771</td>\n",
       "      <td>0.303346</td>\n",
       "      <td>57.892031</td>\n",
       "      <td>0.010233</td>\n",
       "      <td>1657.930728</td>\n",
       "      <td>chr8</td>\n",
       "      <td>16.00</td>\n",
       "      <td>0.96</td>\n",
       "      <td>146364022</td>\n",
       "      <td>146.364022</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>7</td>\n",
       "      <td>1378.689172</td>\n",
       "      <td>0.218858</td>\n",
       "      <td>67.104362</td>\n",
       "      <td>0.009304</td>\n",
       "      <td>2054.544780</td>\n",
       "      <td>chr7</td>\n",
       "      <td>22.98</td>\n",
       "      <td>1.12</td>\n",
       "      <td>159138663</td>\n",
       "      <td>159.138663</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>6</td>\n",
       "      <td>1484.739043</td>\n",
       "      <td>0.198121</td>\n",
       "      <td>71.188253</td>\n",
       "      <td>0.014205</td>\n",
       "      <td>2085.651759</td>\n",
       "      <td>chr6</td>\n",
       "      <td>24.75</td>\n",
       "      <td>1.19</td>\n",
       "      <td>171115067</td>\n",
       "      <td>171.115067</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>1240.353191</td>\n",
       "      <td>0.196953</td>\n",
       "      <td>69.882913</td>\n",
       "      <td>0.014597</td>\n",
       "      <td>1774.901947</td>\n",
       "      <td>chr5</td>\n",
       "      <td>20.67</td>\n",
       "      <td>1.16</td>\n",
       "      <td>180915260</td>\n",
       "      <td>180.915260</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>991.479077</td>\n",
       "      <td>0.158512</td>\n",
       "      <td>63.346802</td>\n",
       "      <td>0.014535</td>\n",
       "      <td>1565.160427</td>\n",
       "      <td>chr4</td>\n",
       "      <td>16.52</td>\n",
       "      <td>1.06</td>\n",
       "      <td>191154276</td>\n",
       "      <td>191.154276</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>1852.707086</td>\n",
       "      <td>0.232386</td>\n",
       "      <td>89.749938</td>\n",
       "      <td>0.008868</td>\n",
       "      <td>2064.299018</td>\n",
       "      <td>chr3</td>\n",
       "      <td>30.88</td>\n",
       "      <td>1.50</td>\n",
       "      <td>198022430</td>\n",
       "      <td>198.022430</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>2610.348072</td>\n",
       "      <td>0.193399</td>\n",
       "      <td>100.831950</td>\n",
       "      <td>0.016436</td>\n",
       "      <td>2588.810459</td>\n",
       "      <td>chr2</td>\n",
       "      <td>43.51</td>\n",
       "      <td>1.68</td>\n",
       "      <td>243199373</td>\n",
       "      <td>243.199373</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>2990.523901</td>\n",
       "      <td>0.320497</td>\n",
       "      <td>115.472510</td>\n",
       "      <td>0.024763</td>\n",
       "      <td>2589.814577</td>\n",
       "      <td>chr1</td>\n",
       "      <td>49.84</td>\n",
       "      <td>1.92</td>\n",
       "      <td>249250621</td>\n",
       "      <td>249.250621</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    chr_id    cpu_times  cpu_times_coef_var   gpu_times  gpu_times_coef_var  \\\n",
       "20      21    70.285068            0.064486   20.127466            0.020129   \n",
       "21      22   172.469018            0.060234   26.141358            0.028638   \n",
       "18      19   360.093128            0.158354   37.500894            0.019712   \n",
       "19      20   253.664935            0.056100   31.955694            0.011885   \n",
       "17      18   201.681090            0.150578   31.185421            0.014987   \n",
       "16      17   645.013491            0.204972   46.746135            0.012088   \n",
       "15      16   360.820090            0.156666   38.419104            0.026036   \n",
       "14      15   447.699067            0.262184   39.821931            0.022703   \n",
       "13      14   376.040273            0.197917   39.416648            0.012373   \n",
       "12      13   284.690888            0.193448   35.200097            0.014523   \n",
       "11      12   908.004200            0.222802   62.625701            0.009319   \n",
       "10      11   793.615437            0.135030   59.065907            0.020870   \n",
       "9       10   879.360636            0.307746   55.700513            0.012450   \n",
       "8        9   687.860546            0.177817   47.334234            0.018216   \n",
       "7        8   959.809771            0.303346   57.892031            0.010233   \n",
       "6        7  1378.689172            0.218858   67.104362            0.009304   \n",
       "5        6  1484.739043            0.198121   71.188253            0.014205   \n",
       "4        5  1240.353191            0.196953   69.882913            0.014597   \n",
       "3        4   991.479077            0.158512   63.346802            0.014535   \n",
       "2        3  1852.707086            0.232386   89.749938            0.008868   \n",
       "1        2  2610.348072            0.193399  100.831950            0.016436   \n",
       "0        1  2990.523901            0.320497  115.472510            0.024763   \n",
       "\n",
       "       speed_up chr_names  cpu_times_min  gpu_times_min  chrom_size  \\\n",
       "20   349.199789     chr21           1.17           0.34    48129895   \n",
       "21   659.755388     chr22           2.87           0.44    51304566   \n",
       "18   960.225451     chr19           6.00           0.63    59128983   \n",
       "19   793.801988     chr20           4.23           0.53    63025520   \n",
       "17   646.715946     chr18           3.36           0.52    78077248   \n",
       "16  1379.822083     chr17          10.75           0.78    81195210   \n",
       "15   939.168423     chr16           6.01           0.64    90354753   \n",
       "14  1124.252524     chr15           7.46           0.66   102531392   \n",
       "13   954.013838     chr14           6.27           0.66   107349540   \n",
       "12   808.778702     chr13           4.74           0.59   115169878   \n",
       "11  1449.890670     chr12          15.13           1.04   133851895   \n",
       "10  1343.610014     chr11          13.23           0.98   135006516   \n",
       "9   1578.729871     chr10          14.66           0.93   135534747   \n",
       "8   1453.198847      chr9          11.46           0.79   141213431   \n",
       "7   1657.930728      chr8          16.00           0.96   146364022   \n",
       "6   2054.544780      chr7          22.98           1.12   159138663   \n",
       "5   2085.651759      chr6          24.75           1.19   171115067   \n",
       "4   1774.901947      chr5          20.67           1.16   180915260   \n",
       "3   1565.160427      chr4          16.52           1.06   191154276   \n",
       "2   2064.299018      chr3          30.88           1.50   198022430   \n",
       "1   2588.810459      chr2          43.51           1.68   243199373   \n",
       "0   2589.814577      chr1          49.84           1.92   249250621   \n",
       "\n",
       "    chr_size_small  \n",
       "20       48.129895  \n",
       "21       51.304566  \n",
       "18       59.128983  \n",
       "19       63.025520  \n",
       "17       78.077248  \n",
       "16       81.195210  \n",
       "15       90.354753  \n",
       "14      102.531392  \n",
       "13      107.349540  \n",
       "12      115.169878  \n",
       "11      133.851895  \n",
       "10      135.006516  \n",
       "9       135.534747  \n",
       "8       141.213431  \n",
       "7       146.364022  \n",
       "6       159.138663  \n",
       "5       171.115067  \n",
       "4       180.915260  \n",
       "3       191.154276  \n",
       "2       198.022430  \n",
       "1       243.199373  \n",
       "0       249.250621  "
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "merged_pd_results_chrom_sizes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Comparing Time Performance \n",
    "\n",
    "In the subsequent step, we compared the time performance between an ensemble of 100 model runs by both methods.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "def convert_results_ensemble_to_pandas(results_average, method_name):\n",
    "\n",
    "    pd_results_average = pd.DataFrame(results_average, index=[0]).transpose()\n",
    "    pd_results_average = pd_results_average.reset_index()\n",
    "    pd_results_average['index'] = pd.to_numeric(pd_results_average['index'])\n",
    "    pd_results_average = pd_results_average.sort_values('index').set_index('index')\n",
    "    pd_results_average.columns = [method_name]\n",
    "    return pd_results_average"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "paths_3dnome_ensemble_logs = 'logs/3dnome/3dnome_ensemble100_logs/'\n",
    "paths_cudaMMC_ensemble_logs = 'logs/cudaMMC/cudaMMC_ensemble100_logs/'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "files_time_cpu_ensemble = [os.path.join(paths_3dnome_ensemble_logs, fname) for fname in os.listdir(paths_3dnome_ensemble_logs) if fname.endswith('txt')]\n",
    "files_time_gpu_ensemble = [os.path.join(paths_cudaMMC_ensemble_logs, fname) for fname in os.listdir(paths_cudaMMC_ensemble_logs) if fname.endswith('txt')]\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    "results_gpu_ensemble, _ = take_times_from_files_calc_average_time(files_time_gpu_ensemble)\n",
    "results_cpu_ensemble, _ = take_times_from_files_calc_average_time(files_time_cpu_ensemble)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "pd_results_cpu_ensemble = convert_results_ensemble_to_pandas(results_cpu_ensemble,'cpu_times')\n",
    "pd_results_gpu_ensemble = convert_results_ensemble_to_pandas(results_gpu_ensemble,'gpu_times')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "merged_pd_results_ensemble = pd.merge(pd_results_cpu_ensemble, pd_results_gpu_ensemble, left_on=pd_results_cpu_ensemble.index, right_on=pd_results_gpu_ensemble.index)#.renameset_index('key_0')\n",
    "merged_pd_results_ensemble.columns = ['chr_id', 'cpu_times', 'gpu_times']\n",
    "merged_pd_results_ensemble['chr_names'] = ['chr1', 'chr14', 'chr21']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "merged_pd_results_ensemble['cpu_times_min'] = (merged_pd_results_ensemble['cpu_times']/60).round(2)\n",
    "merged_pd_results_ensemble['gpu_times_min'] = (merged_pd_results_ensemble['gpu_times']/60).round(2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>chr_id</th>\n",
       "      <th>cpu_times</th>\n",
       "      <th>gpu_times</th>\n",
       "      <th>chr_names</th>\n",
       "      <th>cpu_times_min</th>\n",
       "      <th>gpu_times_min</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>257021.497751</td>\n",
       "      <td>5959.989844</td>\n",
       "      <td>chr1</td>\n",
       "      <td>4283.69</td>\n",
       "      <td>99.33</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>14</td>\n",
       "      <td>33601.737308</td>\n",
       "      <td>2100.281302</td>\n",
       "      <td>chr14</td>\n",
       "      <td>560.03</td>\n",
       "      <td>35.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>21</td>\n",
       "      <td>5087.671860</td>\n",
       "      <td>612.311220</td>\n",
       "      <td>chr21</td>\n",
       "      <td>84.79</td>\n",
       "      <td>10.21</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   chr_id      cpu_times    gpu_times chr_names  cpu_times_min  gpu_times_min\n",
       "0       1  257021.497751  5959.989844      chr1        4283.69          99.33\n",
       "1      14   33601.737308  2100.281302     chr14         560.03          35.00\n",
       "2      21    5087.671860   612.311220     chr21          84.79          10.21"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "merged_pd_results_ensemble"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [],
   "source": [
    "merged_pd_results_ensemble_2plot=merged_pd_results_ensemble[['chr_names', 'cpu_times_min', 'gpu_times_min']]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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OSE3TNnZJjdM2SUlJagqX3/9NT/99FPctJngtm8GLYaCggKdPXt2QmkLCwvp1q1btc4Xr8txzPzU9whPOK1BtXX2IxVlUdOyM1HuwoULOeywwwJbZtnWHZZN3WzZKjdM2UVFRTRs2JBFixZx+OGHx00rImk3aNblaBgZhnUzGplENt2PZtAMwzCMnMAMmmEYhpETmEEzDMMwcgKbh2YYWUSH295JtwrlWHZn7yrnXbx4MTfffDMff/wx3333Hdu3b6dly5acccYZDBs2jH322ac0bbdu3Zg5c2bp73r16tG4cWPatWtHjx49GDJkCC1atKiSHvPmzePBBx9k5syZrFy5kpKSEpo3b07nzp3p06cPF1xwAXXq1ClN37p1a7755htOOOEEZs2aVUHeoEGDePzxx1mzZg3NmjUrF/fDDz8wevRoXnnlFZYtW0atWrU4+OCD6dOnD0OHDmX33Xcvl76wsJDu3bsD8Mc//pEHH3ywwvl++OEH9t9/f7Zv385JJ51EYWFhYLnFcssttzBixIiEyikbMINmGEZa+Pbbb/n+++/p06cP+++/P7vtthvz58/n0UcfZcqUKcydO5e99967NH3dunV57LHHACguLmb58uXMnj2bkSNHcuedd/Loo49ywQUXJKXD7bffzg033ECTJk04//zzad++PTt37mTt2rW8+eabXHzxxcyaNYtHHnmkQt733nuPF198kbPPPjuhc/3vf//jggsu4KeffmLAgAH86U9/oqSkhBkzZjBq1CjGjx/P66+/Ttu2bSvkzc/PZ/LkyYwZM6bCBOcnnngCVQ2c6hFdbrF07NgxId2zBTNohmGkhZ49e9KzZ88K4V27dqVfv35MmDCBv/71r6Xhu+22GxdddFHp74ir+vz58znjjDMYOHAgBxxwACeccEJC558wYQLXX389PXv25Pnnn6dx48bl5N54443MnTuX9957r0LeVq1asXnzZoYPH86vfvWrSueArVq1iv79+7Njxw7ee+89unTpUhr3hz/8gVdffZVzzjmHs846i08++YR69eqVy9+nTx+eeuopXnzxRfr161cubvz48ZxyyimBLbHYcstlbAzNMIyMolWrVgCsX78+ofQdOnRg/Pjx7NixgxtvvDGhPMXFxQwfPpxGjRrxzDPPlBqzWDp27Mgf//jHCuENGzZkxIgRfP7550yYMKHS891zzz2sXbuW22+/vZwxi3DGGWcwdOhQFi9ezL///e8K8UcffTRHHnkk48ePLxf+4Ycf8tlnn+0yBqsyrIXmEbVSSLk+6Hhs2rQp4bRBXN1hh29483rBcdUhFTrXpNwwZWei3MaNG1NUVJRahUKkMl1LSkoqTbN161Z+/vlntm7dyqJFi0qNUrdu3UrzRhZpjpYVLfvYY4+lZcuWzJw5k1WrVtGgQfw1S9955x2+//57+vfvT506dQLl+qGq7Ny5kwEDBnDfffcxcuRIzjzzzNJW1fbt2wF3H0S6B5977jny8vL49a9/HSi7f//+3HPPPTzzzDP85je/AWDz5s2AW+PzwgsvZPjw4SxevJh9990XgEceeYS99tqLk08+2Vf3SLktW7bM95yNGzcO7KqMlrd169bQnu9UYgbNQ1VfBl4uKCi4LNFVHlKx0kTQAsS2Ukj4sjNR7sKFC0NbTSIMKtM1kRUsHn/8ca688srS361bt2bSpEmceuqppWGRLr1oWbGyjzrqKJYvX86aNWsqdRBZunQpAF26dKmg33fffUdeXl7pbxFhzz33LPe7Vq1a7Lnnntx2220MGDCAcePGce211wKUOpA0bNiQRo0aUVRUxPLly2nXrh3NmzcP1KlTp040atSIzz//vFSn+vXrA24cbPDgwYwcOZLnn3+e4cOHs2XLFp5//nkuvfTSUsNZu3btctdTu3Ztfv75Zw488EDfc3700UcUFAQv7hEp4/z8fDp16hSYLlMwg2YYRlo555xzOOyww9i0aROffPIJL730EmvXrk1aTsRDsLI1B6PTxHoVghvTevHFF0t/N2jQgE2bNvnK6d+/P2PGjOGuu+7i8ssvp2nTpkmdy+8aVq9e7Ru35557ctZZZzFhwgSGDx/O1KlT2bhxI0OGDIkrMz8/n5dfftk37tBDD61Up2zCDJphGGll//33Z//99weccfv1r39Nly5d2Lx5M9ddd13CcmINx7p16yguLi6XJtJyi2f8rr32Wq644goArr76apYsWRJ4ThHhzjvv5JRTTuG2225jzJgxFdIka2iDxvMABg8eTO/evZk1axbjxo3jmGOO4YgjjojbRVq7dm169epV6blzAXMKMQwjozjyyCPp1KkT//jHP5LK9+mnn1KnTh3atGkDQN++fdlnn33KfSK0b98egLlz51aQ065dO3r16kWvXr1o0qRJpec9+eST6dWrFw899BDLly+vEN+oUSNatmzJl19+WTom5sdXX31FUVERHTp0CExz6qmnst9++3HTTTcxY8aMSltnuxpm0AzDyDi2bNmS1B5cb775Jt988w0nnXRSqUPImDFjeOONN8p9Ipxwwgm0aNGCadOm8eOPP1Zb37vuuovi4mJuuOEG3/i+fftSXFzMxIkTA2VE5or17ds3ME3t2rW5+OKLefPNN8nPz6d///7VUzzHsC5HwzDSwqpVq3ydN2bMmMGCBQsSdqyZP38+gwcPZrfdduPmm28uDe/cuXNgnry8PG6//XaGDBnC+eefX24eWjSJbq919NFHc8EFFzBp0iTfycrDhg1j4sSJXHfddRxzzDEcffTR5eJff/117r33Xtq2bcsll1wS91y/+93vyMvLo02bNgmNy+1KmEEzDCMt/P73v+f777+nR48etGrViq1btzJnzhymTJlCo0aNKoxH7dixg8jmu9u3by9dKeQ///kP9evX58knn+S4445L+PyDBw/mu+++44YbbuCggw4qXSmkpKSE9evXM336dGbNmlXaPVkZt956K88//zwff/xxhbh9992Xp556iv79+3PccccxYMAAfvGLX1BSUkJhYSHPPfccLVu25KWXXir1bAyiZcuWjBo1KuHrjC63WNq0acPxxx+fsKxMxwyaYRhpoX///kycOJEnnniCNWvWICK0atWK3/72twwbNoyWLVuWS79t2zYGDhwIODf2PfbYg3bt2nHLLbcwePDgKq3leP3119O7d28efPBBpk+fzvjx49m5cyd77703nTt35oknnuD8889PSFabNm343e9+xwMPPOAbf9xxx/HZZ5+VruU4ZcqU0rUcR44cydChQ+M6hFSV6HKLZcCAAWbQDMNID/Ov75p1uykH0a9fvwrLOAXhN6k3VTp37Nix3FqHlckNmqQMMHbsWMaOHRsY36JFC0aPHs3o0aMT0q1bt24Jd3v6TS3IhsnQqcScQgzDMIycwAyaYRiGkROYQTMMwzByAkm0fzbXiVqc+LIgj6BYNm3aRMOGDat13vkrN/qGN68Hq7dUS7QvBzauXW2d/UhFWdS07EyU27hxYw4++ODA+JKSkkq3KqkK2SY3TNnZJjdM2RG5X331FRs3+r+rInTv3n2OqgYvDFkDmEGLoaCgQGfPnp1Q2lQsbtva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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.rcParams.update({'font.size': 18})\n",
    "ax =merged_pd_results_ensemble_2plot.plot.bar(x='chr_names', rot=0, grid=True, xlabel=False, title='Old vs. New algorithm performance\\n(lower is better)', color=['tab:blue', 'forestgreen'])\n",
    "ax.set_yscale('log')\n",
    "ax.set_xlabel(\"\")\n",
    "ax.set_ylabel(\"time (min.)\")\n",
    "ax.minorticks_on()\n",
    "ax.grid(True, which='both')\n",
    "plt.legend([\"3D-GNOME\", \"cudaMMC\"], loc=0, frameon=True)\n",
    "plt.figsize = (2.36,1.57)\n",
    "\n",
    "# plt.savefig(\"figures/performance_ensembles_hg19_cpu_vs_gpu\",dpi=300,bbox_inches='tight',pad_inches=0.1)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Time Performance Analysis on Large Datasets\n",
    "\n",
    "The subsequent phase of our benchmarking involved computing the average time performance using extensive data derived from the in situ CTCF ChIA-PET experiment mapped onto the `hg38` genome. This evaluation was conducted on chromosomes chr1, chr14, and chr21. Notably, we exclusively employed cudaMMC for this task. While 3D-GNOME is efficient for smaller datasets, it struggled to complete the modeling process for larger datasets within a reasonable timeframe.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [],
   "source": [
    "paths_cudaMMC_single_logs = 'logs/cudaMMC/cudaMMC_single_runs_hg38/'\n",
    "files_time_gpu_single_hg38 = [os.path.join(paths_cudaMMC_single_logs, fname) for fname in os.listdir(paths_cudaMMC_single_logs) if fname.endswith('txt')]\n",
    "results_cpu_single_hg38, _ = take_times_from_files_calc_average_time(files_time_gpu_single_hg38)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>gpu_times</th>\n",
       "      <th>gpu_times_min</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>index</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2999.963988</td>\n",
       "      <td>50.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>991.333470</td>\n",
       "      <td>16.52</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>259.713843</td>\n",
       "      <td>4.33</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         gpu_times  gpu_times_min\n",
       "index                            \n",
       "1      2999.963988          50.00\n",
       "14      991.333470          16.52\n",
       "21      259.713843           4.33"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd_results_gpu_single_hg38 = convert_results_ensemble_to_pandas(results_cpu_single_hg38,'gpu_times')\n",
    "pd_results_gpu_single_hg38['gpu_times_min'] = (pd_results_gpu_single_hg38['gpu_times']/60).round(2)\n",
    "pd_results_gpu_single_hg38"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Quality Comparison Between cudaMMC and 3D-GNOME \n",
    "\n",
    "We also assessed the quality of modeling produced by cudaMMC in relation to 3D-GNOME. The similarity matrices were computed in both ensembles of models using the embedded procedure provided in both methods.\n",
    "\n",
    "Citing from the official manual:\n",
    "> With the \"-a ensemble\" option, we instruct the software to perform the ensemble analysis. The `-i` option specifies the directory containing the structures, while `-p` provides the ensemble filenames pattern. `{N}` represents the serial number automatically appended in the prior step. The software matches this pattern against the files in the designated directory, using all the matching files for the analysis. This evaluation spans all three primary levels, resulting in similarity matrices saved within the same directory. The matrices are named as `structural_distances_lvlM.heat`, where `M` indicates the level (0 for chromosome, 1 for segment, 2 for subanchor). These matrices can be directly employed for hierarchical clustering or other analytical techniques.\n",
    "\n",
    "For direct execution:\n",
    "\n",
    "$ ./3dnome -a ensemble -i ./chr14_ensemble/ -p loops_chr14_{N}.hcm\n",
    "\n",
    "and \n",
    "\n",
    "$ ./cudaMMC -a ensemble -i ./chr14_ensemble/ -p loops_chr14_{N}.hcm\n",
    "\n",
    "The methodology behind this measure is detailed in the Supplementary Materials of the following publication:\n",
    "\n",
    "**Szałaj, P., Tang, Z., Michalski, P., Pietal, M. J., Luo, O. J., Sadowski, M., ... & Plewczynski, D. (2016).** *An integrated 3-dimensional genome modeling engine for data-driven simulation of spatial genome organization.* _Genome research_, 26(12), 1697-1709.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We conducted our study utilizing long-read CTCF ChIA-PET data mapped to the hg19 genome. We created ensembles of 100 models for `chr21`. For subsequent analyses, we employed the output files containing similarity matrices.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [],
   "source": [
    "chr21_distances_3dnome_path = 'data/hg19/chr21_ensemble_3dnome/structural_distances_lvl2.heat'\n",
    "chr21_distances_cudaMMC_path = 'data/hg19/chr21_ensemble_cudaMMC/structural_distances_lvl2.heat'\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "chr21_distances_3dnome = [i.strip().split() for i in open(chr21_distances_3dnome_path)]\n",
    "chr21_distances_cudaMMC = [i.strip().split() for i in open(chr21_distances_cudaMMC_path)]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_distance_similarity(matrix):\n",
    "    return [\n",
    "        float(matrix[i][j])\n",
    "        for i in range(len(matrix))\n",
    "        for j in range(len(matrix[i]))\n",
    "        if i != j\n",
    "    ]\n",
    "\n",
    "def generate_dataframe(distance_similarity, method_name):\n",
    "    df = pd.DataFrame()\n",
    "    df['similarity_distance'] = distance_similarity\n",
    "    df['method'] = method_name\n",
    "    return df\n",
    "\n",
    "distance_similarity_chr21_3dnome = get_distance_similarity(chr21_distances_3dnome)\n",
    "distance_similarity_chr21_cudaMMC = get_distance_similarity(chr21_distances_cudaMMC)\n",
    "\n",
    "df_distance_3dnome = generate_dataframe(distance_similarity_chr21_3dnome, '3D-GNOME')\n",
    "df_distance_cudaMMC = generate_dataframe(distance_similarity_chr21_cudaMMC, 'cudaMMC')\n",
    "\n",
    "merged_df = pd.concat([df_distance_3dnome, df_distance_cudaMMC])\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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ynj77be55pprXA4XPPjgg5SUlPDKK6+4PNdZRLj22msZO3as27gNoUdo15ZNkPT09Lo9NXFCXQfz1x0gOsLGOX3qlnPuxrlkF2Rz++m3ezzhqD7pj4mMYEyPVizYdAilICk2iShbFEeKj3j9rGDjzXh0eXk55513HnfffTfp6en87W9/47HHHmPIkCHMnTu33jJMmTKFp556iqFDh/LUU09xxhlnMHnyZFatWlXD77x589iyZQtXXnklzz77LPfddx95eXlMnjyZ2bNnu3x+WloaEydOrNEanjlzJhdeeGGdczJuvPFG8vPzT/kQmDdvHkePHuXGG2vOeygtLWX+/Pm0a9eO888/3xMVGBoJZkw6wOzbt4+ePXsGW4ygEso6qK5WfLb+AGd1b1XnNqD2VvTANgMZ3Wl0nc9+5JONbNpfQJvYKp65/gweXfwom3M20yutFw+MfaDO8Of1ac2n6w5QXlWNTWy0iG/BoaJDlFaWEhvZeLowy8vLiYure8Y8wDPPPMPSpUu55557ePzxx09xq+/OdV999RUffvgh119/PbNmzTpx/6yzzuLSSy+t4f/+++/n//7v/06594c//IFBgwYxY8YMpk6dWiMMaEN78cUX8/3333P66afz/fffs2XLFp588sk6u/wHDBjA4MGDmTlz5olW96uvvsqQIUPo379/Df+//PILZWVlDBw4sI7UGxobpiUdYFq08GznqqZMKOtgVdZRDhaUcpEHh2m8v/599hfu97gVvWl/Act35ZFVqI3L5pzNLM9ezuaczR7JdnbPNKIjbJRU6DXSzeOaA3Cs9JhH4UMFb9YIv/XWWzRv3pwHH3ywhlt9h00+/PBDAO66665T7k+aNIkePXrU8N+sWbMTfxcXF3PkyBGKi4sZO3YsmzdvpqCgwGU8F1xwAa1btz7Rmp45cyZt2rThggsu8EgHN954I4sWLWLv3r3s3buXRYsWuWxFAydkaIxntRtqxxjpAGOOqAttHXy6dj8xkTbG9aq9S7qovIhnv3+WIW2HcGbHM72Ko76TvRJiIhneuQVllpGOioiiWXQzjpUea1QTyLyR9ZdffqFnz54+ney0c+dObDYb3bt3r+Hmaiw3JyeHW265hfT0dJo1a0ZqaiqtWrXiP//5D6CXFLoiMjKSadOm8d5773H48GHeffddpk2bRkREhEc6mDp1KlFR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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.clf()\n",
    "plt.figsize = (2.36,1.57)\n",
    "plt.rcParams.update({'font.size': 18})\n",
    "plt.tight_layout()\n",
    "\n",
    "sns.distplot(df_distance_3dnome[['similarity_distance']], hist=False, rug=False, color='tab:blue')\n",
    "sns.distplot(df_distance_cudaMMC[['similarity_distance']], hist=False, rug=False, color='forestgreen')\n",
    "\n",
    "plt.axvline(x=df_distance_3dnome.similarity_distance.median(),\n",
    "            color='tab:blue',\n",
    "            ls='--', \n",
    "            lw=2.5)\n",
    "plt.axvline(x=df_distance_cudaMMC.similarity_distance.median(),\n",
    "            color='forestgreen',\n",
    "            ls='--', \n",
    "            lw=2.5)\n",
    "\n",
    "plt.title(\"Comparison of 3D Model Similarity Matrices\\n between Old and New Methods\", y=1.07)\n",
    "\n",
    "blue_patch = mpatches.Patch(color='tab:blue', label='3D-GNOME')\n",
    "green_patch = mpatches.Patch(color='forestgreen', label='cudaMMC')\n",
    "plt.legend(handles=[blue_patch, green_patch], loc=0, frameon=True)\n",
    "\n",
    "plt.grid(True, which='both', linestyle='--', linewidth=0.5)\n",
    "#plt.savefig(\"figures/similarity_matrices_hg19_cpu_vs_gpu\",dpi=300,bbox_inches='tight',pad_inches=0.1)\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Median Similarity Distance Analysis\n",
    "\n",
    "This line computes the ratio of the median similarity distance values for models generated by `cudaMMC` and `3D-GNOME`. The result indicates how similar the medians of the two methods are. A ratio very close to 1 (e.g., within 1% difference) would suggest that both methods have nearly identical median similarity distance values for the analyzed data.\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1.006128929441759"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_distance_cudaMMC.similarity_distance.median()/df_distance_3dnome.similarity_distance.median()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Time Performance Barplot\n",
    "\n",
    "The barplot visualizes the differences in time performance between the `cudaMMC` and `3D-GNOME` methods. By marking the standard deviation on the barplot, we provide a measure of the variability or spread of the time performance data for each method. A smaller standard deviation indicates that the time performances are closely clustered around the mean, whereas a larger standard deviation suggests more variability in the performance times.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [],
   "source": [
    "def upload_data(files_time):\n",
    "    results = {}\n",
    "    for i in files_time:\n",
    "        with open(i, 'r') as f:\n",
    "            t=float(f.readline())/60\n",
    "            chrom_name = 'chr'+i.split('/')[-1].split('_')[0]\n",
    "            if chrom_name in results.keys():\n",
    "                results[chrom_name].append(t)\n",
    "            else:\n",
    "                results[chrom_name]=[t]   \n",
    "    return results"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [],
   "source": [
    "def transform_to_long(df, method_name):\n",
    "    df = pd.DataFrame(df).melt(var_name=\"Chromosome\", value_name=method_name)\n",
    "    return df\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [],
   "source": [
    "files_time_cpu = [os.path.join(paths_3dnome_logs, fname) for fname in os.listdir(paths_3dnome_logs) if fname.endswith('txt')]\n",
    "files_time_gpu = [os.path.join(paths_cudaMMC_logs, fname) for fname in os.listdir(paths_cudaMMC_logs) if fname.endswith('txt')]\n",
    "\n",
    "data_cpu = upload_data(files_time_cpu)\n",
    "data_gpu = upload_data(files_time_gpu)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1080x1080 with 22 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "data = {\n",
    "    'chromosome': [],\n",
    "    'method': [],\n",
    "    'value': [] \n",
    "}\n",
    "\n",
    "chromosome_keys = list(data_cpu.keys())\n",
    "chromosome_keys.sort(key=lambda x: int(x.replace(\"chr\", \"\")) if x[3:].isdigit() else float('inf'))\n",
    "\n",
    "for chrom in chromosome_keys:\n",
    "    data['chromosome'].extend([chrom] * len(data_cpu[chrom]))\n",
    "    data['method'].extend(['3D-GNOME'] * len(data_cpu[chrom]))\n",
    "    data['value'].extend(np.array(data_cpu[chrom]))\n",
    "\n",
    "    data['chromosome'].extend([chrom] * len(data_gpu[chrom]))\n",
    "    data['method'].extend(['cudaMMC'] * len(data_gpu[chrom]))\n",
    "    data['value'].extend(np.array(data_gpu[chrom]))\n",
    "\n",
    "df = pd.DataFrame(data)\n",
    "palette_dict = {'3D-GNOME': 'tab:blue', 'cudaMMC': 'forestgreen'}\n",
    "\n",
    "plt.figure(figsize=(15, 15))\n",
    "for idx, chrom in enumerate(chromosome_keys, start=1):\n",
    "    plt.subplot(5, 5, idx)\n",
    "    \n",
    "    sns.barplot(data=df[df['chromosome'] == chrom], x='method', y='value', ci=\"sd\", capsize=.2, palette=palette_dict)\n",
    "    \n",
    "    plt.title(chrom.replace(\"Chromosome\", \"chr\"), y=-0.2)\n",
    "    plt.xlabel('')\n",
    "    plt.ylabel('Time (minutes)')\n",
    "    plt.tight_layout()\n",
    "    plt.gca().set_xticklabels([])\n",
    "\n",
    "# plt.savefig(\"figures/barplots_time_performance\", dpi=300, bbox_inches='tight', pad_inches=0.1)\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
